<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>注册事件函数</title>
</head>

<body>
  <button id="btn">注册事件</button>
  <script>
    //题目：请自定义一个注册事件的兼容函数，要求兼容三种注册事件方法。
    //思路：写一个兼容写法，兼容不同浏览器版本

    //获取元素
    var btn = document.getElementById('btn');

    //调用注册事件函数，给btn注册事件
    sjzc(btn, 'click', fn);

    // 注册事件函数
    //参数1：需要绑定事件的元素
    //参数2:事件类型
    //参数3:事件函数
    function sjzc(ele, type, fn) {
      //检测浏览器能力，如果浏览器认识addEventListener方法，使用addEventListener注册事件
      if (ele.addEventListener) {
        ele.addEventListener(type, fn);
      } else if (ele.attachEvent) {
        //如果浏览器不认识addEventListener方法，使用attachEvent方法注册事件
        ele.attachEvent('on' + type, fn);
      }
    }

    //事件函数
    function fn() {
      alert('事件');
    }
  </script>
</body>

</html>